Optical character recognition (OCR) systems are generally used to detect text present in an image and to convert the detected text into its equivalent electronic representation. In order to accurately recognize text with a conventional OCR engine, the image typically needs to be of a high quality. The quality of the image depends on various factors such as the power of the lens, light intensity variation, relative motion between the camera and text, focus, and so forth. Generally, an OCR engine can detect a majority of text characters in good quality images, such as images having uniform intensity, no relative motion, and good focus. However, even with good quality images, conventional OCR engines are still often unable to accurately detect all text characters. This imprecision is further exacerbated when attempting to recognize text from images containing variations in lighting, shadows, contrast, glare, blur, and the like. Further, efficient implementation of these OCR engines is a challenge, despite the rapid growth of mobile computational power due to ever-increasing image resolution, video frame rate, and increasing algorithmic complexity. Therefore, as technology advances and as people are increasingly using portable computing devices in a wider variety of ways, it can be advantageous to adapt the ways in which images are processed in order to improve visual recognition precision and computing efficiency of the same.